(def collider-info "A package for producing ANSI escape sequences.")
(def . partial)
(def [ansi-pfx ansi-sep ansi-sfx ansi-6-fg ansi-6-bg ansi-8-fg ansi-8-bg]
     ["\e["    ";"      "m"      "38;5"    "48;5"    "38;2"    "48;2"   ])
(defn string/strip-ansi (s) #s
  (peg/replace-all '(sequence "\e" 1 (thru "m")) s)
  )
(defn string/fit (n s) #n,s
  (def len (length s)) #n
  (if (< n len)
    (string/slice s 0 n)
    (string s (string/repeat " " (- n len)))))
(defn string/resize (chars w) #s,n
(string/slice
 (string/repeat chars
                (inc (div w
                          (length chars))))
 0 w))
(def string/longest #*[&s]
  (. extreme |(> (length $) (length $1)) ))
(defn string/longest-length ( & strings ) #*[&s]
  (length (string/longest strings)) )

(defn point (fn (a) (fn (& etc) a)))
#(defmacro macro-map (macro & xs) #M,l
#   (pp macro)
#   (def macro-name (symbol macro))
#   (pp macro-name)
#   (pp xs)
#   (def macro-tuple (map |~[,macro-name ,;$&] xs))
#  (pp macro-tuple)
#  [ macro-tuple ])

#(defmacro ddefn (name default-pairs & body)
#  (let (default-array (map |['default $0 $1] ;default-pairs)
#         default-body [;default-array ;body])
#  ~(defn ,name ,default-body  )))
